Nun also die Speicherwaltung. In einer kurzen Einleitung werde ich die wichtigen Strategien,
die Politik einer Speicherwaltung kurz erwähnen und in dem Zusammenhang dann eben auch etwas über
die Symbiose zwischen Maschinenprogrammen und Betriebssystemen zusammen mit der
Speicherwaltung erläutern, bevor ich dann in die Militär zur Speicherzuteilung komme und dann
im Abschluss noch die Speichervirtualisierung bei kurz anreiße. Wichtige Aufgaben der Speicherwaltung
sind im Wesentlichen darin halt Buch darüber zu führen, welche Speicherbereiche von einem
Prozess belegt sind und diese Bereiche, die der Prozess belegt, eben auch entsprechend seine
Adressraumgröße auszulegen. Hierzu muss man also schon wissen, wie groß wenigstens der statische
Prozessadressraum wäre, um zu wissen, wie viel Speicherbereiche brauchen mindestens im Hauptspeicher,
damit so ein Prozess nachher überhaupt stattfinden kann. Es ist eine zentrale Aufgabe eines jeden
Betriebssystems. Da haben wir die Platzierungsstrategie, die im Wesentlichen die Frage
beantwortet, wo denn im Hauptspeicher überhaupt Platz ist, um ein Programm oder auch nur Teile
eines Programms platzieren, also ablegen zu können. Wo ist freier Speicher? Dann gibt es eine zusätzliche
Aufgabe, das ist die Speichervirtualisierung. Ich hatte ja vorher schon gesagt, dass das ein
optionales Merkmal eines Betriebssystems ist. Wir müssen jetzt nicht denken, dass immer jedes
Betriebssystem eine Speichervirtualisierung durchführt, nur deshalb, weil Linux, MacOS und
Windows eine Speichervirtualisierung machen. Es ist eine optionale Maßnahme eines Betriebssystems,
was letztendlich nur dann erforderlich ist, wenn für den Grad an Mehrprogrammbetrieb zu wenig
Hauptspeicher verfügbar ist. Also wenn wir zu viel Maschinenprogramme zugleich laufen lassen
wollen in einem Rechnungssystem und wir vor den Problemen stehen, dass für die Gesamtheit
dieser Maschinenprogramme einfach nicht genügend Hauptspeicher zur Verfügung steht, dann ist
Speichervirtualisierung eine sinnvolle Maßnahme, um praktisch diesen Mehrprogrammbetrieb vernünftig
gestalten zu können. Nun, in diesem Kontext der Speichervirtualisierung gibt es einerseits
die Ladestrategie, die nämlich festlegt, wann ein bestimmtes Datum oder Teile eines Programms
in den Hauptspeicher gelegt werden sollen. Wir haben ja schon gehört, dass bei virtuellem Speicher
bei weitem nicht alle Objekte, die einem Prozess zur Verfügung stehen, in seinem Adressraum adressiert
werden können, dass die dann wirklich permanent während der Laufzeit des Prozesses im Hauptspeicher
liegen müssen, sondern ein Teil davon kann in der sogenannten Swap Area liegen. Und dann kommt genau
die Ladestrategie ran, die dann letztendlich festlegt, zu welchem Zeitpunkt dann praktisch
ein gewünschtes, ein relevantes Objekt in den Hauptspeicher platziert werden muss, damit der
Prozess überhaupt stattfinden kann. Das kann man in dem Moment machen, wo man den Zugriff
durchführt auf dieses Objekt oder man macht es im Voraus. Und dann gibt es noch die Ersetzungsstrategie,
die letztendlich die Frage beantwortet, welches Datum Hauptspeicher zu ersetzen ist. Wenn wir eine
Speicherüberbelegung haben, weil wir zu viele Programme, zu viele Maschinenprogramme zugleich im
Rechensystem laufen lassen wollen und wir zu wenig Hauptspeicher für alle diese Programme
besitzen, werden wir immer nur einen Teil der Programme vorrätig haben. Und dann kann es trotzdem
in der Situation dazu kommen, dass bei einer Speicheranforderung wir feststellen, dass diese
Anforderung jetzt nicht befriedigt werden kann, weil der gesamte Hauptspeicher komplett belegt ist.
Und dann kann man eine Lösung verfolgen, die einfach der Frage nach geht, okay, wo ist denn
möglicherweise ein belegter Speicherbereich vor einem Prozess, der aber jetzt und auch vielleicht
in der nächsten Zeit von diesem Prozess nicht genutzt wird. Und diesen Bereich, den kann man
nutzen, den kann man diesen Prozess jetzt entziehen und einem anderen Prozess, nämlich derjenige,
der jetzt gerade diese Speicheranforderung gestellt hat, denn zuordnen. Damit sehen wir eben auch,
dass Speicher, Hauptspeicher eine entziehbare Ressource ist, eine wiederwennbare Ressource,
die einem Prozess gegebenenfalls genau dann, wenn wir Speichervirtualisierung im System drin haben,
entziehen kann. Nun, diese Aufgaben, die sind zum Teil voneinander abhängig. Sie profitieren
zumindest voneinander. Wenn wir uns mal eine Situation betrachten, dass wir sagen, okay,
wir wollen eben etwas platzieren, wir haben eine stellende Speicheranforderung, da muss im
speicherfreier Platz dafür gefunden werden. Also wenn wir jetzt einen Prozess erzeugen oder wir
wollen eine Variable oder eine größere Datenstruktur anlegen, dann muss man im Hauptspeicher dafür den
Presenters
Zugänglich über
Offener Zugang
Dauer
00:11:59 Min
Aufnahmedatum
2020-06-22
Hochgeladen am
2020-06-22 12:56:33
Sprache
de-DE